home *** CD-ROM | disk | FTP | other *** search
- package javax.help;
-
- import java.awt.Component;
- import java.awt.IllegalComponentStateException;
- import java.beans.BeanInfo;
- import java.beans.Introspector;
- import java.io.InputStream;
- import java.net.URL;
- import java.text.CollationElementIterator;
- import java.text.MessageFormat;
- import java.text.RuleBasedCollator;
- import java.util.Enumeration;
- import java.util.Hashtable;
- import java.util.Locale;
- import java.util.MissingResourceException;
- import java.util.ResourceBundle;
- import java.util.Vector;
-
- public class HelpUtilities {
- private static Hashtable tailsPerLocales = new Hashtable();
- private static Hashtable bundles;
- private static ResourceBundle lastBundle = null;
- private static Locale lastLocale = null;
- private static final boolean debug = false;
-
- public static String getHelpSetNameFromBean(Class var0) {
- String var1;
- try {
- BeanInfo var2 = Introspector.getBeanInfo(var0);
- var1 = (String)var2.getBeanDescriptor().getValue("helpSetName");
- } catch (Exception var5) {
- var1 = null;
- }
-
- if (var1 == null) {
- String var6 = var0.getName();
- int var3 = var6.lastIndexOf(".");
- if (var3 == -1) {
- var1 = var6 + "Help.hs";
- } else {
- String var4 = var6.substring(0, var3);
- var1 = var4.replace('.', '/') + "/Help.hs";
- }
- }
-
- return var1;
- }
-
- public static String getIDStringFromBean(Class var0) {
- String var1;
- try {
- BeanInfo var2 = Introspector.getBeanInfo(var0);
- var1 = (String)var2.getBeanDescriptor().getValue("helpID");
- } catch (Exception var3) {
- var1 = null;
- }
-
- if (var1 == null) {
- String var4 = var0.getName();
- var1 = var4 + ".topID";
- }
-
- return var1;
- }
-
- public static String getDefaultQueryEngine() {
- return "com.sun.java.help.search.DefaultSearchEngine";
- }
-
- public static URL getLocalizedResource(ClassLoader var0, String var1, String var2, Locale var3) {
- return getLocalizedResource(var0, var1, var2, var3, false);
- }
-
- public static URL getLocalizedResource(ClassLoader var0, String var1, String var2, Locale var3, boolean var4) {
- Enumeration var6 = getCandidates(var3);
-
- while(var6.hasMoreElements()) {
- String var7 = (String)var6.nextElement();
- String var8 = var1 + var7 + var2;
- URL var5;
- if (var0 == null) {
- var5 = ClassLoader.getSystemResource(var8);
- } else {
- var5 = var0.getResource(var8);
- }
-
- if (var5 != null) {
- if (!var4) {
- return var5;
- }
-
- try {
- InputStream var9 = var5.openConnection().getInputStream();
- if (var9 != null) {
- int var10 = var9.read();
- var9.close();
- if (var10 != -1) {
- return var5;
- }
- }
- } catch (Throwable var11) {
- }
- }
- }
-
- return null;
- }
-
- public static synchronized Enumeration getCandidates(Locale var0) {
- LocalePair var2 = new LocalePair(var0, Locale.getDefault());
- Vector var1 = (Vector)tailsPerLocales.get(var2);
- if (var1 != null) {
- debug("getCandidates - cached copy");
- return var1.elements();
- } else {
- String var3 = var0.toString();
- StringBuffer var4 = (new StringBuffer("_")).append(var3);
- if (var3 == null) {
- var4.setLength(0);
- }
-
- var1 = new Vector();
-
- while(var4.length() != 0) {
- debug(" adding ", var4);
- String var5 = var4.toString();
- var1.addElement(var5);
- int var6 = var5.lastIndexOf(95);
- if (var6 != -1) {
- var4.setLength(var6);
- }
- }
-
- debug(" addign -- null -- ");
- var1.addElement("");
- if (var0 != Locale.getDefault()) {
- String var10 = Locale.getDefault().toString();
- StringBuffer var11 = (new StringBuffer("_")).append(var10);
- if (var10 == null) {
- var11.setLength(0);
- }
-
- while(var11.length() != 0) {
- debug(" adding ", var11);
- String var7 = var11.toString();
- var1.addElement(var7);
- int var8 = var7.lastIndexOf(95);
- if (var8 != -1) {
- var11.setLength(var8);
- }
- }
- }
-
- tailsPerLocales.put(var2, var1);
- debug("tails is == ", var1);
- return var1.elements();
- }
- }
-
- public static Locale getLocale(Component var0) {
- if (var0 == null) {
- return Locale.getDefault();
- } else {
- try {
- return var0.getLocale();
- } catch (IllegalComponentStateException var2) {
- return Locale.getDefault();
- }
- }
- }
-
- private static synchronized ResourceBundle getBundle(Locale var0) {
- if (lastLocale == var0) {
- return lastBundle;
- } else {
- if (bundles == null) {
- bundles = new Hashtable();
- }
-
- ResourceBundle var1 = (ResourceBundle)bundles.get(var0);
- if (var1 == null) {
- try {
- var1 = ResourceBundle.getBundle("javax.help.resources.Constants", var0);
- } catch (MissingResourceException var3) {
- throw new Error("Fatal: Resource for javahelp is missing");
- }
-
- bundles.put(var0, var1);
- }
-
- lastBundle = var1;
- lastLocale = var0;
- return var1;
- }
- }
-
- public static String getString(String var0) {
- return getString(Locale.getDefault(), var0);
- }
-
- public static String getText(String var0) {
- return getText((Locale)Locale.getDefault(), var0, (String)null, (String)null);
- }
-
- public static String getText(String var0, String var1) {
- return getText((Locale)Locale.getDefault(), var0, var1, (String)null);
- }
-
- public static String getText(String var0, String var1, String var2) {
- return getText(Locale.getDefault(), var0, var1, var2);
- }
-
- public static String getText(String var0, String var1, String var2, String var3) {
- return getText(Locale.getDefault(), var0, var1, var2, var3);
- }
-
- public static String getString(Locale var0, String var1) {
- ResourceBundle var2 = getBundle(var0);
-
- try {
- return var2.getString(var1);
- } catch (MissingResourceException var4) {
- throw new Error("Fatal: Localization data for JavaHelp is broken. Missing " + var1 + " key.");
- }
- }
-
- public static String[] getStringArray(Locale var0, String var1) {
- ResourceBundle var2 = getBundle(var0);
-
- try {
- return var2.getStringArray(var1);
- } catch (MissingResourceException var4) {
- throw new Error("Fatal: Localization data for JavaHelp is broken. Missing " + var1 + " key.");
- }
- }
-
- public static String getText(Locale var0, String var1) {
- return getText(var0, var1, (String)null, (String)null, (String)null);
- }
-
- public static String getText(Locale var0, String var1, String var2) {
- return getText(var0, var1, var2, (String)null, (String)null);
- }
-
- public static String getText(Locale var0, String var1, String var2, String var3) {
- return getText(var0, var1, var2, var3, (String)null);
- }
-
- public static String getText(Locale var0, String var1, String var2, String var3, String var4) {
- ResourceBundle var5 = getBundle(var0);
- if (var2 == null) {
- var2 = "null";
- }
-
- if (var3 == null) {
- var3 = "null";
- }
-
- if (var4 == null) {
- var4 = "null";
- }
-
- try {
- String var6 = var5.getString(var1);
- String[] var7 = new String[]{var2, var3, var4};
- MessageFormat var8 = new MessageFormat(var6);
-
- try {
- var8.setLocale(var0);
- } catch (NullPointerException var10) {
- }
-
- return var8.format(var7);
- } catch (MissingResourceException var11) {
- throw new Error("Fatal: Localization data for JavaHelp is broken. Missing " + var1 + " key.");
- }
- }
-
- public static Locale localeFromLang(String var0) {
- Object var3 = null;
- Locale var4 = null;
- if (var0 == null) {
- return var4;
- } else {
- int var5 = var0.indexOf("_");
- int var6 = var0.indexOf("-");
- if (var5 == -1 && var6 == -1) {
- String var10 = "";
- var4 = new Locale(var0, var10);
- } else {
- if (var5 == -1 && var6 != -1) {
- var5 = var6;
- }
-
- String var1 = var0.substring(0, var5);
- int var7 = var0.indexOf("_", var5 + 1);
- int var8 = var0.indexOf("-", var5 + 1);
- if (var7 == -1 && var8 == -1) {
- String var9 = var0.substring(var5 + 1);
- var4 = new Locale(var1, var9);
- } else {
- if (var7 == -1 && var8 != -1) {
- var7 = var8;
- }
-
- String var2 = var0.substring(var5 + 1, var7);
- String var11 = var0.substring(var7 + 1);
- var4 = new Locale(var1, var2, var11);
- }
- }
-
- return var4;
- }
- }
-
- public static boolean isStringInString(RuleBasedCollator var0, String var1, String var2) {
- if (var1 != null && var2 != null) {
- if (var1.length() == 0 && var2.length() == 0) {
- return true;
- } else {
- boolean var3 = true;
- boolean var6 = false;
- var0.setDecomposition(2);
- String var7 = var0.getRules();
- if (var7.startsWith("@")) {
- var6 = true;
- }
-
- CollationElementIterator var4 = var0.getCollationElementIterator(var1);
- CollationElementIterator var5 = var0.getCollationElementIterator(var2);
- int var8 = 0;
- int var9 = 0;
- boolean var16 = true;
- boolean var17 = true;
- int var18 = 0;
-
- while(true) {
- try {
- var4.setOffset(0);
- } catch (NoSuchMethodError var28) {
- }
-
- var8 = var4.next();
-
- try {
- var5.setOffset(var18);
- } catch (NoSuchMethodError var26) {
- } catch (Exception var27) {
- return false;
- }
-
- var9 = var5.next();
- if (var9 == -1) {
- return false;
- }
-
- while(var9 != -1) {
- if (var8 == var9) {
- try {
- var18 = var5.getOffset();
- } catch (NoSuchMethodError var25) {
- }
- break;
- }
-
- int var10 = CollationElementIterator.primaryOrder(var8);
- int var11 = CollationElementIterator.primaryOrder(var9);
- if (var10 == var11) {
- try {
- var18 = var5.getOffset();
- } catch (NoSuchMethodError var24) {
- }
- break;
- }
-
- var9 = var5.next();
- }
-
- if (var9 == -1) {
- return false;
- }
-
- var16 = false;
- var17 = false;
- boolean var19 = var0.getStrength() >= 1;
- boolean var20 = var19;
- boolean var21 = var0.getStrength() >= 2;
-
- while(true) {
- if (var16) {
- var8 = var4.next();
- } else {
- var16 = true;
- }
-
- if (var17) {
- var9 = var5.next();
- } else {
- var17 = true;
- }
-
- if (var8 == -1 || var9 == -1) {
- if (var8 == -1) {
- return true;
- }
-
- while(CollationElementIterator.primaryOrder(var8) == 0 && (CollationElementIterator.secondaryOrder(var8) == 0 || !var20)) {
- if ((var8 = var4.next()) == -1) {
- return true;
- }
- }
- break;
- }
-
- int var31 = CollationElementIterator.primaryOrder(var8);
- int var32 = CollationElementIterator.primaryOrder(var9);
- if (var8 == var9) {
- if (var6 && var31 != 0 && !var20) {
- var20 = var19;
- var21 = false;
- }
- } else if (var31 != var32) {
- if (var8 == 0) {
- var17 = false;
- } else if (var9 == 0) {
- var16 = false;
- } else if (var31 == 0) {
- if (var20) {
- break;
- }
-
- var17 = false;
- } else {
- if (var32 != 0 || var20) {
- break;
- }
-
- var16 = false;
- }
- } else if (var20) {
- short var12 = CollationElementIterator.secondaryOrder(var8);
- short var13 = CollationElementIterator.secondaryOrder(var9);
- if (var12 != var13) {
- break;
- }
-
- if (var21) {
- short var14 = CollationElementIterator.tertiaryOrder(var8);
- short var15 = CollationElementIterator.tertiaryOrder(var9);
- if (var14 != var15) {
- break;
- }
- }
- }
- }
- }
- }
- } else {
- return false;
- }
- }
-
- private static void debug(Object var0, Object var1, Object var2) {
- }
-
- private static void debug(Object var0) {
- debug(var0, "", "");
- }
-
- private static void debug(Object var0, Object var1) {
- debug(var0, var1, "");
- }
- }
-